# coding=utf-8
from flask_script import Manager

from flask_migrate import Migrate, MigrateCommand

from info import creat_app, db

# manage.py是程序启动的入口，只关心启动的相关参数以及内容，不关心具体如何创建app或者
# 相关的业务逻辑


#  通过指定的配置名字来创建相应配置的app
#  create_app就相当于工厂方法
from info.models import User

app = creat_app('development')

manager = Manager(app)
# 将app与db关联
Migrate(app, db)
# 将迁移命令添加到manager中
manager.add_command('db', MigrateCommand)

# /manager.option()为下面所装饰的函数传参数   dest  目标
@manager.option('-n', '-name', dest = 'name')
@manager.option('-p', '-password', dest = 'password')
def create_super_user(name, password):
    if not all([name, password]):
        print('参数不足')

    user = User()
    user.nick_name = name
    user.password = password
    user.mobile = name
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        print(e)
    print('添加成功')


if __name__ == '__main__':
    print(app.url_map)
    manager.run()
